# Salesforce RU Careers Control Bot

This is the bot, that converts Salesforce RU Careers from Google Form responses to Telegram posts.

## Configuration

1. Create a new bot
1. Add bot to your chat/channel. Bot has to be an admin to post message to channel.
1. Create `.env` file:
```
BOT_TOKEN=<yout bot token>
CHANNEL=@<your channel>
```
1. Make docker image
1. Update docker-compose to use correct image
1. Add the following script to your Google Form:
```javascript
const BOT_URL = "<url where your service is hosted>";

const fieldMaps = {
    // <question text>: <field name in code>
    // e.g.:
    "Кого ищете?": "position",
    "Компания": "company",
    "Город": "city",
    "Зарплата": "salary"
}
function onSubmit(e) {
    const form = FormApp.getActiveForm();
    const formId = form.getId();
    const allResponses = form.getResponses();
    const latestResponse = allResponses[allResponses.length - 1];
    const responseId = latestResponse.getId();
    const response = latestResponse.getItemResponses();
    const payload = {};
    for (let i = 0; i < response.length; i++) {
        const question = fieldMaps[response[i].getItem().getTitle()];
        const answer = response[i].getResponse();
        payload[question] = answer;
    }
    payload.formId = formId;
    payload.responseId = String(allResponses.length - 1);
    payload.editUrl = latestResponse.getEditResponseUrl();

    var options = {
        "method": "post",
        "contentType": "application/json",
        "payload": JSON.stringify(payload)
    };
    UrlFetchApp.fetch(BOT_URL, options);
};
```

NB: This instruction is not perfect for sure for multiple reasons. Feel free to contribute to the repo!
